
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>32.9. pyclbr --- Python class browser support &#8212; Python 3.6.6rc1 文档</title>
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="在 Python 3.6.6rc1 文档 中搜索"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="关于这些文档" href="../about.html" />
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="copyright" title="Copyright" href="../copyright.html" />
    <link rel="next" title="32.10. py_compile --- Compile Python source files" href="py_compile.html" />
    <link rel="prev" title="32.8. tabnanny --- Detection of ambiguous indentation" href="tabnanny.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
    <link rel="canonical" href="https://docs.python.org/3/library/pyclbr.html" />
    
    <script type="text/javascript" src="../_static/copybutton.js"></script>
    <script type="text/javascript" src="../_static/switchers.js"></script>
    
    
 

  </head><body>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="32.10. py_compile --- Compile Python source files"
             accesskey="N">下一页</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="32.8. tabnanny --- Detection of ambiguous indentation"
             accesskey="P">上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">zh</span>
          <span class="version_switcher_placeholder">3.6.6rc1</span>
          <a href="../index.html">Documentation </a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" accesskey="U">32. Python Language Services</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="Quick search" type="text" name="q" />
          <input type="submit" value="Go" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>    

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="module-pyclbr">
<span id="pyclbr-python-class-browser-support"></span><h1>32.9. <a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pyclbr</span></code></a> --- Python class browser support<a class="headerlink" href="#module-pyclbr" title="永久链接至标题">¶</a></h1>
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.6/Lib/pyclbr.py">Lib/pyclbr.py</a></p>
<hr class="docutils" />
<p>The <a class="reference internal" href="#module-pyclbr" title="pyclbr: Supports information extraction for a Python class browser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pyclbr</span></code></a> module can be used to determine some limited information
about the classes, methods and top-level functions defined in a module.  The
information provided is sufficient to implement a traditional three-pane
class browser.  The information is extracted from the source code rather
than by importing the module, so this module is safe to use with untrusted
code.  This restriction makes it impossible to use this module with modules
not implemented in Python, including all standard and optional extension
modules.</p>
<dl class="function">
<dt id="pyclbr.readmodule">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule" title="永久链接至目标">¶</a></dt>
<dd><p>Read a module and return a dictionary mapping class names to class
descriptor objects.  The parameter <em>module</em> should be the name of a
module as a string; it may be the name of a module within a package.  The
<em>path</em> parameter should be a sequence, and is used to augment the value
of <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>, which is used to locate module source code.</p>
</dd></dl>

<dl class="function">
<dt id="pyclbr.readmodule_ex">
<code class="descclassname">pyclbr.</code><code class="descname">readmodule_ex</code><span class="sig-paren">(</span><em>module</em>, <em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyclbr.readmodule_ex" title="永久链接至目标">¶</a></dt>
<dd><p>Like <a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule()</span></code></a>, but the returned dictionary, in addition to
mapping class names to class descriptor objects, also maps top-level
function names to function descriptor objects.  Moreover, if the module
being read is a package, the key <code class="docutils literal notranslate"><span class="pre">'__path__'</span></code> in the returned
dictionary has as its value a list which contains the package search
path.</p>
</dd></dl>

<div class="section" id="class-objects">
<span id="pyclbr-class-objects"></span><h2>32.9.1. Class Objects<a class="headerlink" href="#class-objects" title="永久链接至标题">¶</a></h2>
<p>The <code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code> objects used as values in the dictionary returned by
<a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule()</span></code></a> and <a class="reference internal" href="#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule_ex()</span></code></a> provide the following data
attributes:</p>
<dl class="attribute">
<dt id="pyclbr.Class.module">
<code class="descclassname">Class.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Class.module" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the module defining the class described by the class descriptor.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.name">
<code class="descclassname">Class.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Class.name" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the class.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.super">
<code class="descclassname">Class.</code><code class="descname">super</code><a class="headerlink" href="#pyclbr.Class.super" title="永久链接至目标">¶</a></dt>
<dd><p>A list of <code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code> objects which describe the immediate base
classes of the class being described.  Classes which are named as
superclasses but which are not discoverable by <a class="reference internal" href="#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule()</span></code></a> are
listed as a string with the class name instead of as <code class="xref py py-class docutils literal notranslate"><span class="pre">Class</span></code>
objects.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.methods">
<code class="descclassname">Class.</code><code class="descname">methods</code><a class="headerlink" href="#pyclbr.Class.methods" title="永久链接至目标">¶</a></dt>
<dd><p>A dictionary mapping method names to line numbers.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.file">
<code class="descclassname">Class.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Class.file" title="永久链接至目标">¶</a></dt>
<dd><p>Name of the file containing the <code class="docutils literal notranslate"><span class="pre">class</span></code> statement defining the class.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Class.lineno">
<code class="descclassname">Class.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Class.lineno" title="永久链接至目标">¶</a></dt>
<dd><p>The line number of the <code class="docutils literal notranslate"><span class="pre">class</span></code> statement within the file named by
<a class="reference internal" href="#pyclbr.Class.file" title="pyclbr.Class.file"><code class="xref py py-attr docutils literal notranslate"><span class="pre">file</span></code></a>.</p>
</dd></dl>

</div>
<div class="section" id="function-objects">
<span id="pyclbr-function-objects"></span><h2>32.9.2. Function Objects<a class="headerlink" href="#function-objects" title="永久链接至标题">¶</a></h2>
<p>The <code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code> objects used as values in the dictionary returned by
<a class="reference internal" href="#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">readmodule_ex()</span></code></a> provide the following attributes:</p>
<dl class="attribute">
<dt id="pyclbr.Function.module">
<code class="descclassname">Function.</code><code class="descname">module</code><a class="headerlink" href="#pyclbr.Function.module" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the module defining the function described by the function
descriptor.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.name">
<code class="descclassname">Function.</code><code class="descname">name</code><a class="headerlink" href="#pyclbr.Function.name" title="永久链接至目标">¶</a></dt>
<dd><p>The name of the function.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.file">
<code class="descclassname">Function.</code><code class="descname">file</code><a class="headerlink" href="#pyclbr.Function.file" title="永久链接至目标">¶</a></dt>
<dd><p>Name of the file containing the <code class="docutils literal notranslate"><span class="pre">def</span></code> statement defining the function.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyclbr.Function.lineno">
<code class="descclassname">Function.</code><code class="descname">lineno</code><a class="headerlink" href="#pyclbr.Function.lineno" title="永久链接至目标">¶</a></dt>
<dd><p>The line number of the <code class="docutils literal notranslate"><span class="pre">def</span></code> statement within the file named by
<a class="reference internal" href="#pyclbr.Function.file" title="pyclbr.Function.file"><code class="xref py py-attr docutils literal notranslate"><span class="pre">file</span></code></a>.</p>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">內容目录</a></h3>
  <ul>
<li><a class="reference internal" href="#">32.9. <code class="docutils literal notranslate"><span class="pre">pyclbr</span></code> --- Python class browser support</a><ul>
<li><a class="reference internal" href="#class-objects">32.9.1. Class Objects</a></li>
<li><a class="reference internal" href="#function-objects">32.9.2. Function Objects</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="tabnanny.html"
                        title="上一章">32.8. <code class="docutils literal notranslate"><span class="pre">tabnanny</span></code> --- Detection of ambiguous indentation</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="py_compile.html"
                        title="下一章">32.10. <code class="docutils literal notranslate"><span class="pre">py_compile</span></code> --- Compile Python source files</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../bugs.html">Report a Bug</a></li>
      <li>
        <a href="https://github.com/python/cpython/blob/3.6/Doc/library/pyclbr.rst"
            rel="nofollow">Show Source
        </a>
      </li>
    </ul>
  </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="py_compile.html" title="32.10. py_compile --- Compile Python source files"
             >下一页</a> |</li>
        <li class="right" >
          <a href="tabnanny.html" title="32.8. tabnanny --- Detection of ambiguous indentation"
             >上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <span class="language_switcher_placeholder">zh</span>
          <span class="version_switcher_placeholder">3.6.6rc1</span>
          <a href="../index.html">Documentation </a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="language.html" >32. Python Language Services</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="Quick search" type="text" name="q" />
          <input type="submit" value="Go" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>  
    <div class="footer">
    &copy; <a href="../copyright.html">Copyright</a> 2001-2018, Python Software Foundation.
    <br />
    The Python Software Foundation is a non-profit corporation.
    <a href="https://www.python.org/psf/donations/">Please donate.</a>
    <br />
    Last updated on 6月 24, 2018.
    <a href="../bugs.html">Found a bug</a>?
    <br />
    Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.7.2.
    </div>

  </body>
</html>